import axios from 'axios'

const api = axios.create({
  baseURL: '/api/v1',
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 响应拦截器
api.interceptors.response.use(
  response => {
    // 如果响应数据格式正确，直接返回data
    if (response.data && typeof response.data === 'object') {
      return response.data
    }
    return response.data
  },
  error => {
    // 统一错误处理
    if (error.response) {
      // 服务器返回了错误状态码
      const { status, data } = error.response
      const message = data?.message || data?.error || `请求失败 (${status})`
      
      // 根据状态码显示不同的错误信息
      if (status === 401) {
        console.error('未授权，请登录')
      } else if (status === 403) {
        console.error('无权限访问')
      } else if (status === 404) {
        console.error('资源不存在')
      } else if (status === 500) {
        console.error('服务器错误')
      }
      
      error.message = message
      error.status = status
    } else if (error.request) {
      // 请求已发出，但没有收到响应
      error.message = '网络错误，请检查网络连接'
      console.error('网络错误:', error.request)
    } else {
      // 其他错误
      error.message = error.message || '请求失败'
      console.error('请求错误:', error.message)
    }
    
    return Promise.reject(error)
  }
)

export default api

